草庐IT

linux - bash 如何处理嵌套引号?

这个问题在这里已经有了答案:HowcanIescapeadoublequoteinsidedoublequotes?(9个回答)关闭4年前。我需要使用如下语法运行命令:runuser-luserNameHere-c'/path/to/commandarg1arg2'不幸的是,我必须将额外的'字符嵌套到命令本身中,但我无法告诉bash正确解释这些字符。我想运行的命令实际上是:runuser-lminer-c'screen-SMine-p0-Xeval'stuff"pwd"\015''不幸的是,bash似乎在点击第二个'并开始呕吐。这是错误:-bash:screen-SMine-p0-Xe

linux - 在初始化/bash 脚本中同时执行多个程序

您好,我正在使用使用rcS脚本启动的模拟器,这是我的脚本cd/tests./test1&./test2&./test3&./test4exit我想要的是同时运行所有测试,并且只有在之前的所有测试都完成后才执行退出命令。不仅在测试4完成后,这可能吗?。谢谢。 最佳答案 你可以使用等待:./test1&./test2&./test3&./test4&wait来自bash手册页:wait[n...]Waitforeachspecifiedprocessandreturnitsterminationstatus.Eachnmaybeapro

linux - 如何使用 bash 确定声卡类型?

在bash中,如何确定安装的是什么声卡?我正在尝试为Rhythmbox创建一个插件,我想在配置脚本中对此进行测试。编辑:在我的机器上,我需要使用sudo才能使用lspci和lsmod。@Quassnoi使用cat的答案无需额外权限即可工作。 最佳答案 lspci|grep-iaudio 关于linux-如何使用bash确定声卡类型?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

linux - 使用 bash 从文本文件中读取字符

有谁知道如何使用bash脚本从文件中读取前两个字符。有问题的文件实际上是一个I/O驱动程序,其中没有换行符,实际上是无限长的。 最佳答案 read内置函数支持-n参数:$echo"Twochars"|whileread-n2i;doecho$i;doneTwochars$cat/proc/your_driver|(read-n2i;echo$i;) 关于linux-使用bash从文本文件中读取字符,我们在StackOverflow上找到一个类似的问题: htt

linux - 自己调用 bash 脚本

我需要使用一组不同的参数单独调用一个bash脚本,使其作为后台进程运行,所以我使用类似的东西:if[[$a==$b]]then$0-v&>/dev/nullfi问题是,尽管我使用“&”作为后缀调用与后台进程相同的脚本并将所有输出重定向到/dev/null,但我调用脚本的终端未发布,我假设是因为最初被调用的脚本有一个作为前台进程运行的进程,所以问题是,如何自己调用bash脚本,这样当它调用自己时,负责第一次运行脚本的进程时间被杀死,控制台被释放,第二次调用自身作为后台进程运行? 最佳答案 您没有使用&将其作为后台进程运行。&>是一个完

linux - 从 bash 中的 for 循环回显变量名称,而不是值?

这个问题在这里已经有了答案:Bashindirectvariablereferencing(1个回答)关闭去年。a=1b=2c=3fordbin$a$b$c;doechoVARIABLENAMEblahblahblah我正在编写的脚本需要这个。我在顶部将一些客户端名称设置为变量的数据库名称。我正在运行ps-ef和其他一些东西,但我需要它来回显循环中它所在的客户端名称。所以在上面的例子中,它会回显“a”,然后是它的其他命令,然后在第二个循环中回显“b”......等

linux - bash 脚本将文本附加到文件的第一行

我想使用bash脚本将文本添加到文件第一行的末尾。该文件是/etc/cmdline.txt,它不允许换行并且需要用空格分隔的新命令,所以我想添加的文本实际上需要在第一行。到目前为止我得到的是:line='bcm2708.w1_gpio_pin=20'file=/boot/cmdline.txtif!grep-q-x-F-e"$line">"$file"fi但是在第一行的换行符之后追加文本,所以结果是错误的。我要么需要修剪文件竞争,添加我的文本和换行符,要么以某种方式将它添加到文件的第一行而不以某种方式触及其余部分,但我对bash脚本的了解不足以在这里找到解决方案,所有我在网上找到的示例

linux - 使用 Bash 将标准输入重定向到来自不同的终端

我想知道如何使用bash将脚本的标准输入从当前xtermsession(即/dev/pts/0)重定向到也在运行的session(即/dev/pts/1)?我有一个打开3个xterm窗口的bash脚本,我只想从其中一个窗口获取输入,但我不知道该怎么做。任何帮助表示赞赏!谢谢。编辑(从下面移动——OP提交了这个澄清作为答案)我想我应该澄清我想做什么。我将从一个pty开始一个脚本,假设它是/dev/pts/3。该脚本将打开3个xterminals,比方说:/dev/pts/0、/dev/pts/1和/dev/pts/2。这3个新的ptys是用户将要看到的。该脚本要求用户输入一些信息,我希望

python - Linux如何编程,例如bash 或 python 脚本,知道它是如何启动的 : from command line or interactive GUI?

我想做以下事情:如果bash/python脚本是从终端启动的,它应该做一些事情,比如打印错误消息文本。如果脚本是从GUIsession启动的,比如从文件浏览器双击,它应该做其他事情,例如显示一个GUI消息框。 最佳答案 您可以检查stdin和stdout是否连接到终端。从GUI运行时,通常stdin根本没有连接,而stdout连接到日志文件。从终端运行时,stdin和stdout都将连接到终端。在Python中:importosimportsysifos.isatty(sys.stdout.fileno()):#printerror

linux - 在 bash 脚本中的特定时间运行 tail -f

我需要一个脚本来运行一系列tail-f命令并将它们输出到一个文件中。我需要的是让tail-f运行一定时间来grep特定单词。之所以需要一定时间,是因为其中一些值不会立即显示,因为这是实时日志。我怎样才能运行这样的东西,比方说20秒,输出grep命令,然后继续执行下一个命令?tail-f/example/logs/auditlog|greptest谢谢 最佳答案 timeout20tail-f/example/logs/auditlog|greptest 关于linux-在bash脚本中的